home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / i / imagefxv2.1a.lha / ImageFX / Rexx / Flying.ifx < prev    next >
Text File  |  1996-03-02  |  3KB  |  175 lines

  1. /*
  2.  * $VER: Flying 2.0.0 (24.9.92)
  3.  *
  4.  * Arexx program for the ImageFX image processing system.
  5.  * Written by Thomas Krehbiel
  6.  *
  7.  * Revised for ImageFX release 2.0.
  8.  *
  9.  * Fly half-size versions of the current buffer over the screen
  10.  * with different image processing effects done to them.
  11.  *
  12.  */
  13.  
  14. OPTIONS RESULTS
  15.  
  16. SIGNAL ON BREAK_C
  17.  
  18. inpath  = GETCLIP('Flying_InPath')
  19. infile  = GETCLIP('Flying_InFile')
  20. outpath = GETCLIP('Flying_OutPath')
  21. outfile = GETCLIP('Flying_OutFile')
  22.  
  23. IF inpath = "" THEN DO
  24.    GetPrefs LoadPath
  25.    inpath = result
  26.    END
  27. IF outpath = "" THEN DO
  28.    GetPrefs RendPath
  29.    outpath = result
  30.    outfile = 'flying.anim'
  31.    END
  32.  
  33. RequestFile '"Select Image To Fly:"' inpath infile
  34. IF rc ~= 0 THEN EXIT
  35.  
  36. inname = result
  37. infile = filereq.file
  38. inpath = filereq.path
  39.  
  40. RequestFile '"Select Output Animation File:"' outpath outfile
  41. IF rc ~= 0 THEN EXIT
  42.  
  43. outname = result
  44. outfile = filereq.file
  45. outpath = filereq.path
  46.  
  47. SETCLIP('Flying_InPath', inpath)
  48. SETCLIP('Flying_InFile', infile)
  49. SETCLIP('Flying_OutPath', outpath)
  50. SETCLIP('Flying_OutFile', outfile)
  51.  
  52. IF EXISTS(outname) THEN DO
  53.    RequestResponse 'Overwrite existing animation' outname'?'
  54.    IF rc ~= 0 THEN EXIT
  55.    ADDRESS COMMAND 'Delete' outname
  56.    END
  57.  
  58. LoadBuffer inname FORCE
  59. IF rc ~= 0 THEN EXIT
  60.  
  61. Redraw Off
  62.  
  63. GetMain ; IF result = 0 THEN EXIT
  64. PARSE VAR result name width height .
  65.  
  66. Undo Off
  67.  
  68. frame = 1
  69. LockRange 0 OFF
  70.  
  71. SetRender Amiga
  72. IF rc ~= 0 THEN EXIT
  73.  
  74. Render Mode Hires Lace Lace
  75. Render Colors 16
  76. Render Dither 4 0 0
  77.  
  78. Render Go
  79. SaveRenderedAs ANIM outname Keep
  80.  
  81. LockRange 0 ON
  82.  
  83. CALL Clipit("FalseColor Standard")
  84. CALL Fly
  85.  
  86. CALL Clipit("Color2Grey Luma ; ReliefMap 255 0")
  87. CALL Fly
  88.  
  89. CALL Clipit("Color2Grey Luma ; EdgeDetect 30")
  90. CALL Fly
  91.  
  92. CALL Clipit("Disperse 1")
  93. CALL Fly
  94.  
  95. CALL Clipit("Halftone 2")
  96. CALL Fly
  97.  
  98. CALL Clipit("Contrast 50")
  99. CALL Fly
  100.  
  101. CALL Clipit("HorizMirror; VertMirror")
  102. CALL Fly
  103.  
  104. Render Close
  105.  
  106. Render Go
  107. SaveRenderedAs ANIM outname Append Keep
  108.  
  109. BREAK_C:
  110.  
  111. errcode = rc
  112.  
  113. SaveRenderedAs ANIM outname Close
  114. Render Close
  115.  
  116. KillBrush
  117. KillBuffer Force
  118.  
  119. IF errcode = 0 THEN
  120.    ADDRESS COMMAND 'VT' outname
  121.  
  122.  
  123. EXIT
  124.  
  125. Clipit:
  126.    PROCEDURE EXPOSE width height
  127.    PARSE ARG effect
  128.  
  129.    Scissors
  130.    Box 0 0 width height
  131.    Scale 42 42 Percent
  132.    INTERPRET effect
  133.  
  134.    RETURN 0
  135.  
  136. Fly:
  137.    PROCEDURE EXPOSE width height frame y outname
  138.  
  139.    GetBrush
  140.    PARSE VAR result name bwid bht .
  141.  
  142.    y = RANDOM(bht%2,height-(bht%2))
  143.  
  144.    framecount = 18
  145.  
  146.    DO i = 1 TO framecount
  147.  
  148.       Render Close
  149.  
  150.       x = (i * (width+bwid) % framecount) - bwid%2
  151.  
  152.       Message 'Frame '||frame||' ('||x||')'
  153.       frame = frame + 1
  154.  
  155.       Buffer2Swap
  156.  
  157.       DrawMode Darken
  158.       EdgeMode FeatherIn 5
  159.       Point x+10 y+10
  160.       DrawMode Normal
  161.       EdgeMode Normal
  162.       Point x y
  163.  
  164.       Render Go
  165.       SaveRenderedAs ANIM outname Append Keep
  166.  
  167.       Swap
  168.  
  169.       END
  170.  
  171.    KillBrush
  172.  
  173.    RETURN 0
  174.  
  175.